import api from './index.js'

// 画线圈地游戏相关API
export const gameAPI = {
  // 创建游戏
  createGame(roomId, maxPlayers = 6, gameTimeMinutes = 5) {
    return api.post('/LineDrawingGame/create', {
      roomId: roomId,
      maxPlayers: maxPlayers,
      gameTimeMinutes: gameTimeMinutes
    })
  },

  // 加入游戏
  joinGame(gameId, playerName) {
    return api.post('/LineDrawingGame/join', {
      gameId: gameId,
      playerName: playerName
    })
  },

  // 开始游戏
  startGame(gameId) {
    return api.post(`/LineDrawingGame/${gameId}/start`)
  },

  // 获取游戏状态
  getGameState(gameId) {
    return api.get(`/LineDrawingGame/${gameId}/state`)
  },

  // 获取游戏排行榜
  getGameRanking(gameId) {
    return api.get(`/LineDrawingGame/${gameId}/ranking`)
  },

  // 离开游戏
  leaveGame(gameId) {
    return api.post(`/LineDrawingGame/${gameId}/leave`)
  },

  // 玩家移动（HTTP版本，主要用于测试）
  playerMove(gameId, x, y, isDrawing = false) {
    return api.post('/LineDrawingGame/move', {
      gameId: gameId,
      x: x,
      y: y,
      isDrawing: isDrawing,
      timestamp: new Date().toISOString()
    })
  },

  // 使用道具
  useItem(gameId, itemType, targetX, targetY) {
    return api.post('/LineDrawingGame/use-item', {
      gameId: gameId,
      itemType: itemType,
      targetX: targetX,
      targetY: targetY
    })
  }
}

// 兼容旧的API调用（保留原有接口以防其他地方使用）
export const legacyGameAPI = {
  // 获取游戏状态
  getGameState(gameId) {
    return api.get(`/games/${gameId}/state`)
  },

  // 执行游戏操作
  makeMove(gameId, moveData) {
    return api.post(`/games/${gameId}/move`, moveData)
  },

  // 暂停游戏
  pauseGame(gameId) {
    return api.post(`/games/${gameId}/pause`)
  },

  // 恢复游戏
  resumeGame(gameId) {
    return api.post(`/games/${gameId}/resume`)
  },

  // 投降
  surrender(gameId) {
    return api.post(`/games/${gameId}/surrender`)
  },

  // 获取游戏结果
  getGameResult(gameId) {
    return api.get(`/games/${gameId}/result`)
  },

  // 获取游戏历史记录
  getGameHistory(gameId) {
    return api.get(`/games/${gameId}/history`)
  },

  // 获取游戏统计
  getGameStats(gameId) {
    return api.get(`/games/${gameId}/stats`)
  },

  // 重新开始游戏
  restartGame(gameId) {
    return api.post(`/games/${gameId}/restart`)
  },

  // 邀请玩家再来一局
  inviteReplay(gameId, playerIds) {
    return api.post(`/games/${gameId}/invite-replay`, { playerIds })
  },

  // 保存游戏
  saveGame(gameId) {
    return api.post(`/games/${gameId}/save`)
  },

  // 加载游戏
  loadGame(saveId) {
    return api.post(`/games/load/${saveId}`)
  }
}